package com.example.drools_springboot_demo.model;

import java.math.BigDecimal;
import java.util.List;

/**
 * Created by DongChenchen on 2018/4/27.
 * 一个order对象，对应两个订单，（交易所A和交易所B 各一个订单）
 *
 * disk_buy_one_count 交易所A的 买1数量
 **/
public class Order {
    //--------------------------------------价格波动率及影响因素------------------------------------------
    private List<BigDecimal> price_per_minute;//每分钟的价格
    private BigDecimal price_change_rate;//价格波动率
    private BigDecimal price_change_rate_threshold;//价格波动率阀值
    //--------------------------------------盘口收益率及影响因素------------------------------------------
    private BigDecimal disk_yield ;//盘口收益率
    private BigDecimal disk_yield_threshold;//盘口收益率阀值
    //盘口收益率影响因素：交易所A的买1金额，交易所B的卖1金额,买入手续费,卖出手续费
    //交易所A的买1金额
    private BigDecimal disk_buy_one;
    //交易所B的卖1金额
    private BigDecimal disk_sell_one;
    //盘口买1数量
    private BigDecimal disk_buy_count;
    //盘口卖1数量
    private BigDecimal disk_sell_count;
    //买入手续费
    private BigDecimal disk_buy_fee;
    //卖出手续费
    private BigDecimal disk_sell_fee;
    //--------------------------------------预期收益率及影响因素------------------------------------------
    private BigDecimal expected_yield;//预期收益率
    private BigDecimal expected_yield_threshold;//预期收益率阀值
    //预期收益率影响因素：（买入价*数量-卖价*数量-买入手续费-卖出手续费）/(买入金额+卖出金额)*100
    //交易所A的买入价
    private BigDecimal expected_buy_one;
    //交易所B的卖出价
    private BigDecimal expected_sell_one;
    //买入手续费
    private BigDecimal expected_buy_poundage;
    //卖出手续费
    private BigDecimal expected_sell_poundage;
    //预期买入数量
    private BigDecimal expected_buy_count;
    //预期卖出数量
    private BigDecimal expected_sell_count;
    //--------------------------------------交易失败风险及影响因素------------------------------------------
    //吃单的交易数量不得高于现有挂单总数的60%
    private BigDecimal transaction_fail_risk ;//交易失败风险
    private BigDecimal transaction_fail_risk_threshold=BigDecimal.valueOf(0.6);//交易失败风险阀值


    private Boolean canOrder=false;//结果：是否可下单
    private String msg;//不可下单原因

    private Integer flag1=0;
    private Integer flag2=0;
    private Integer flag3=0;
    private Integer flag4=0;
    private Integer flag5=0;
    private Integer flag6=0;


    public BigDecimal getPrice_change_rate() {
        return price_change_rate;
    }

    public void setPrice_change_rate(BigDecimal price_change_rate) {
        this.price_change_rate = price_change_rate;
    }

    public List<BigDecimal> getPrice_per_minute() {
        return price_per_minute;
    }

    public void setPrice_per_minute(List<BigDecimal> price_per_minute) {
        this.price_per_minute = price_per_minute;
    }

    public BigDecimal getPrice_change_rate_threshold() {
        return price_change_rate_threshold;
    }

    public void setPrice_change_rate_threshold(BigDecimal price_change_rate_threshold) {
        this.price_change_rate_threshold = price_change_rate_threshold;
    }

    public BigDecimal getDisk_yield() {
        return disk_yield;
    }

    public void setDisk_yield(BigDecimal disk_yield) {
        this.disk_yield = disk_yield;
    }

    public BigDecimal getDisk_yield_threshold() {
        return disk_yield_threshold;
    }

    public void setDisk_yield_threshold(BigDecimal disk_yield_threshold) {
        this.disk_yield_threshold = disk_yield_threshold;
    }

    public BigDecimal getDisk_buy_one() {
        return disk_buy_one;
    }

    public void setDisk_buy_one(BigDecimal disk_buy_one) {
        this.disk_buy_one = disk_buy_one;
    }

    public BigDecimal getDisk_sell_one() {
        return disk_sell_one;
    }

    public void setDisk_sell_one(BigDecimal disk_sell_one) {
        this.disk_sell_one = disk_sell_one;
    }

    public BigDecimal getDisk_buy_count() {
        return disk_buy_count;
    }

    public void setDisk_buy_count(BigDecimal disk_buy_count) {
        this.disk_buy_count = disk_buy_count;
    }

    public BigDecimal getDisk_sell_count() {
        return disk_sell_count;
    }

    public void setDisk_sell_count(BigDecimal disk_sell_count) {
        this.disk_sell_count = disk_sell_count;
    }

    public BigDecimal getExpected_yield() {
        return expected_yield;
    }

    public void setExpected_yield(BigDecimal expected_yield) {
        this.expected_yield = expected_yield;
    }

    public BigDecimal getExpected_yield_threshold() {
        return expected_yield_threshold;
    }

    public void setExpected_yield_threshold(BigDecimal expected_yield_threshold) {
        this.expected_yield_threshold = expected_yield_threshold;
    }

    public BigDecimal getExpected_buy_one() {
        return expected_buy_one;
    }

    public void setExpected_buy_one(BigDecimal expected_buy_one) {
        this.expected_buy_one = expected_buy_one;
    }

    public BigDecimal getExpected_sell_one() {
        return expected_sell_one;
    }

    public void setExpected_sell_one(BigDecimal expected_sell_one) {
        this.expected_sell_one = expected_sell_one;
    }

    public BigDecimal getExpected_buy_poundage() {
        return expected_buy_poundage;
    }

    public void setExpected_buy_poundage(BigDecimal expected_buy_poundage) {
        this.expected_buy_poundage = expected_buy_poundage;
    }

    public BigDecimal getExpected_sell_poundage() {
        return expected_sell_poundage;
    }

    public void setExpected_sell_poundage(BigDecimal expected_sell_poundage) {
        this.expected_sell_poundage = expected_sell_poundage;
    }

    public BigDecimal getExpected_buy_count() {
        return expected_buy_count;
    }

    public void setExpected_buy_count(BigDecimal expected_buy_count) {
        this.expected_buy_count = expected_buy_count;
    }

    public BigDecimal getExpected_sell_count() {
        return expected_sell_count;
    }

    public void setExpected_sell_count(BigDecimal expected_sell_count) {
        this.expected_sell_count = expected_sell_count;
    }

    public BigDecimal getTransaction_fail_risk() {
        return transaction_fail_risk;
    }

    public void setTransaction_fail_risk(BigDecimal transaction_fail_risk) {
        this.transaction_fail_risk = transaction_fail_risk;
    }

    public BigDecimal getTransaction_fail_risk_threshold() {
        return transaction_fail_risk_threshold;
    }

    public void setTransaction_fail_risk_threshold(BigDecimal transaction_fail_risk_threshold) {
        this.transaction_fail_risk_threshold = transaction_fail_risk_threshold;
    }

    public BigDecimal getDisk_buy_fee() {
        return disk_buy_fee;
    }

    public void setDisk_buy_fee(BigDecimal disk_buy_fee) {
        this.disk_buy_fee = disk_buy_fee;
    }

    public BigDecimal getDisk_sell_fee() {
        return disk_sell_fee;
    }

    public void setDisk_sell_fee(BigDecimal disk_sell_fee) {
        this.disk_sell_fee = disk_sell_fee;
    }

    public Boolean getCanOrder() {
        return canOrder;
    }

    public void setCanOrder(Boolean canOrder) {
        this.canOrder = canOrder;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public Integer getFlag1() {
        return flag1;
    }

    public void setFlag1(Integer flag1) {
        this.flag1 = flag1;
    }

    public Integer getFlag2() {
        return flag2;
    }

    public void setFlag2(Integer flag2) {
        this.flag2 = flag2;
    }

    public Integer getFlag3() {
        return flag3;
    }

    public void setFlag3(Integer flag3) {
        this.flag3 = flag3;
    }

    public Integer getFlag4() {
        return flag4;
    }

    public void setFlag4(Integer flag4) {
        this.flag4 = flag4;
    }

    public Integer getFlag5() {
        return flag5;
    }

    public void setFlag5(Integer flag5) {
        this.flag5 = flag5;
    }

    public Integer getFlag6() {
        return flag6;
    }

    public void setFlag6(Integer flag6) {
        this.flag6 = flag6;
    }
}
